package com.rbn.stockmobiledevices.admin;

import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.InvocationTargetException;
import java.sql.SQLException;
import java.util.Map;

public interface AdminManager {
	
	public static final String DB_INFORMATION_JDBC_URL = "JDBC_URL";
	public static final String DB_INFORMATION_JDBC_USUARIO = "JDB_USUARIO";
	public static final String DB_INFORMATION_JDBC_PASSWORD = "JDBC_PASSWORD";
	public static final String DB_INFORMATION_JDBC_DBNAME = "JDBC_DBNAME";
	
	public static final String DB_INFORMATION_DBS = "DATABASES";
	public static final String DB_INFORMATION_TABLAS = "TABLAS";
	public static final String DB_INFORMATION_REG_POR_TABLA = "NRO_REG_TABLAS";
	
	
	public Map<String, String> getDbConfiguration() throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, NoSuchFieldException;
	public boolean dbIsCreated(String jdbc_url, String jdbc_user, String jdbc_password, String dbName) throws SQLException, ClassNotFoundException;
	public Map<String, Object> getDbInformation(String jdbc_url, String jdbc_user, String jdbc_password, String dbName) throws ClassNotFoundException, SQLException;
	public void createDB();
	public void importDbData(InputStream in) throws SQLException;
	public void exportDbData(OutputStream out) throws SQLException;
}
